package com.it.jdk8_time;

import java.time.LocalDate;

public class Test_LocalDate {
    public static void main(String[] args) {
        // 0.获取本地日期对象(不可变对象)
        LocalDate ld = LocalDate.now(); // 年 月 日
        System.out.println(ld); // 2024-01-19

        // 1.获取日期对象中的信息
        int year = ld.getYear(); // 年
        System.out.println(year + "年");

        int month = ld.getMonthValue(); // 月(1-12)
        System.out.println(month + "月");

        int day = ld.getDayOfMonth(); // 日
        System.out.println(day + "日");

        int dayOfYear = ld.getDayOfYear(); // 一年中的第几天
        System.out.println("一年中的第" + dayOfYear + "天");

        int dayOfWeek = ld.getDayOfWeek().getValue(); // 星期几
        System.out.println("星期" + dayOfWeek);

        System.out.println("-----------------------------------");

        // 2.直接修改某个信息：withYear、withMonth、withDayOfMonth、withDayOfYear
        LocalDate ld2 = ld.withYear(2099); // 把年改成2099年
        System.out.println(ld2);

        LocalDate ld3 = ld.withMonth(12); // 把月改成12月
        System.out.println(ld3);

        System.out.println(ld); // 当前日期
        System.out.println("-----------------------------------");

        // 3.把某个信息加多少：plusYears、PlusMonths、plusDays、plusWeeks
        LocalDate ld4 = ld.plusYears(2); // 加2年
        System.out.println(ld4);
        LocalDate ld5 = ld.plusMonths(2); // 加2月
        System.out.println(ld5);
        System.out.println("-----------------------------------");

        // 4.把某个信息减多少： minusYears、minusMonths、minusDays、minusWeeks
        LocalDate ld6 = ld.minusYears(2); // 减2年
        System.out.println(ld6);
        LocalDate ld7 = ld.minusMonths(2); // 减2月
        System.out.println(ld7);
        System.out.println("-----------------------------------");

        // 5.获取指定日期的LocalDate对象： public static LocalDate of(int year, int month, int dayOfMonth)
        LocalDate ld8 = LocalDate.of(2099, 12, 12);
        System.out.println(ld8);
        LocalDate ld9 = LocalDate.of(2066, 6, 6);
        System.out.println(ld9);
        System.out.println("-----------------------------------");

        // 6.判断2个日期对象,是否相等，在前还是在后：equals isBefore isAfter
        System.out.println(ld8.equals(ld9)); // false  判断2个日期对象,是否相等
        System.out.println(ld8.isAfter(ld9)); // false  判断ld8日期对象是否在ld9日期对象后面
        System.out.println(ld8.isBefore(ld9)); // true 判断ld8日期对象是否在ld9日期对象前面

    }
}
